#pragma once

#include "basic_config.hpp"

namespace zuck
{
	using i8_t  = char;
	using u8_t  = unsigned char;
	using i16_t = short;
	using u16_t = unsigned short;
	using i32_t = int;
	using u32_t = unsigned int;
	using i64_t = long long;
	using u64_t = unsigned long long;

	using uchar = u8_t;
	using bytes = u8_t;

	using f32_t = float;
	using f64_t = double;
#if __linux__
	using f128_t = long double;
#endif

	using max_align_t = f64_t;

	template<typename AnyType>
	using p = AnyType*;

	using i8_p  = p<i8_t>;
	using u8_p  = p<u8_t>;
	using i16_p = p<i16_t>;
	using u16_p = p<u16_t>;
	using i32_p = p<i32_t>;
	using u32_p = p<u32_t>;
	using i64_p = p<i64_t>;
	using u64_p = p<u64_t>;
	using f32_p = p<f32_t>;
	using f64_p = p<f64_t>;

	using rd_str = const char* const;

	template<typename ...Args>
	using void_t = void;
}

